/*错误中间件：捕捉异步函数和同步代码的try catch语句
	1、try{}catch(){}语句不能能用来捕捉promise对象的异步函数的错误(用.catch()来捕捉错误)、
	和回调函数形式的异步代码错误（用next（err）拉触发错误中间件捕捉）
	2.错误中间件捕捉错误优点在于：如果前面代码出现错误不会影响后续代码执行导致整个程序奔溃

*/



// 引入express第三方框架模块
let express = require("express");
const fs =require("fs");
// 引入promisify方法去包装异步函数，让异步函数转化成promise对象
let promisify = require("util").promisify;
const readFile = promisify(fs.readFile);
// 创建网站服务器对象
const app = express();

app.get("/index",async (req,res,next)=>{
	try {
			await readFile("./07.txt");
	} catch(ex) {
		
		next(ex);
	}



})



// 错误处理中间件
app.use((err,req,res,next)=>{
	res.status(500).send(err.message);

})


// 监听端口
app.listen(3000);
console.log("服务器启动成功！");